full_data <- readRDS('data/full_data.rds')
daily_full <- readRDS('data/daily_full.rds')
prod_by_month <- full_data %>%
select(Monitor, yearmonth, active_2km, monthly_oil_2km, monthly_gas_2km) %>%
distinct() %>%
filter(yearmonth <= '2023-10')
prod_by_month_avg <- prod_by_month %>%
group_by(yearmonth) %>%
summarise(avg_oil = mean(monthly_oil_2km),
avg_gas = mean(monthly_gas_2km))
coef <- median(1032*prod_by_month_avg$avg_gas/10^9)/median(prod_by_month_avg$avg_oil/10^6)
prod_by_month_avg %>%
ggplot(aes(x = yearmonth, group = 1)) +
geom_line(aes(y = avg_oil/10^6, color = 'Oil'), linewidth=1) +
geom_line(aes(y = 1032*avg_gas/10^9/coef, color = 'Natural Gas'), linewidth=1) +
scale_y_continuous(
name = "Monthly Oil in Million Barrels",
sec.axis = sec_axis(~.*coef, name="Monthly Gas in Billion Cubic Feet")
) +
theme(
axis.title.y = element_text(color = 'tomato'),
axis.title.y.right = element_text(color = 'skyblue')
) +
scale_color_manual(values = c("skyblue", "tomato")) +
scale_x_discrete(breaks = sort(unique(prod_by_month_avg$yearmonth))[seq(1, length(sort(unique(prod_by_month_avg$yearmonth))), by = 6)]) +
xlab("Date") +
labs(colour="Production Type", title = "Average Production within 2km radius of any monitor",
subtitle = '(Affected by monitor status)') +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45))
H2S_dm <- full_data %>%
group_by(day, Monitor) %>%
summarise(H2S_daily_max = max(H2S, na.rm = TRUE)) %>%
mutate(H2S_daily_max = if_else(H2S_daily_max == -Inf, NA, H2S_daily_max))
## Warning: There were 171 warnings in `summarise()`.
## The first warning was:
## ℹ In argument: `H2S_daily_max = max(H2S, na.rm = TRUE)`.
## ℹ In group 1660: `day = 2021-01-19`, `Monitor = "G Street"`.
## Caused by warning in `max()`:
## ! no non-missing arguments to max; returning -Inf
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 170 remaining warnings.
## `summarise()` has grouped output by 'day'. You can override using the `.groups`
## argument.
H2S_ma <- H2S_dm %>%
mutate(yearmonth = format(day, "%Y-%m")) %>%
group_by(yearmonth, Monitor) %>%
summarise(H2S_monthly_average = mean(H2S_daily_max, na.rm = TRUE))
## `summarise()` has grouped output by 'yearmonth'. You can override using the
## `.groups` argument.
H2S_dm_graph <- H2S_dm %>%
ggplot(aes(x=day, y=H2S_daily_max, group=Monitor, color=Monitor)) +
geom_line() +
labs(title = "Daily Max H2S concentration by monitor", y = 'Daily Max H2S', x = 'time') +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45))
ggplotly(H2S_dm_graph) %>% layout(dragmode = 'pan')
H2S_dm_graph_b <- H2S_dm %>%
ggplot(aes(x=day, y=H2S_daily_max, group=Monitor, color=Monitor)) +
geom_line() +
labs(title = "Daily Max H2S concentration by monitor w/o outlier", y = 'Daily Max H2S', x = 'time') +
scale_y_continuous(limits = c(0, 100)) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45))
ggplotly(H2S_dm_graph_b) %>% layout(dragmode = 'pan')
H2S_ma_graph <- H2S_ma %>%
ggplot(aes(x=yearmonth, y=H2S_monthly_average, group=Monitor, color=Monitor)) +
geom_line() +
labs(title = "Monthly Average H2S concentration by monitor", y = 'Monthly Average H2S', x = 'time') +
scale_x_discrete(breaks = unique(H2S_ma$yearmonth)[seq(1, length(unique(H2S_ma$yearmonth)), by = 6)]) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45))
ggplotly(H2S_ma_graph) %>% layout(dragmode = 'pan')
H2S_ma_graph_b <- H2S_ma %>%
ggplot(aes(x=yearmonth, y=H2S_monthly_average, group=Monitor, color=Monitor)) +
geom_line() +
labs(title = "Monthly Average H2S concentration by monitor w/o outlier", y = 'Monthly Average H2S', x = 'time') +
scale_x_discrete(breaks = unique(H2S_ma$yearmonth)[seq(1, length(unique(H2S_ma$yearmonth)), by = 6)]) +
scale_y_continuous(limits=c(0, 50)) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45))
ggplotly(H2S_ma_graph_b) %>% layout(dragmode = 'pan')
The line with the largest deviation/peak corresponds to the 213th&Chico monitor, in 2021-10 Maybe we should start from January 2022 to start modelling to remove the extreme values, or simply removing the 213 monitor since that’s set up specifically for the event.
# Compute daily average
H2S_da <- full_data %>%
group_by(day, Monitor) %>%
summarise(H2S_daily_avg = mean(H2S, na.rm=TRUE))
## `summarise()` has grouped output by 'day'. You can override using the `.groups`
## argument.
H2S_da_graph <- H2S_da %>%
ggplot(aes(x=day, y=H2S_daily_avg, group=Monitor, color=Monitor)) +
geom_line() +
labs(title = "Daily Average H2S concentration by monitor", y = 'Daily Average H2S', x = 'time') +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45))
ggplotly(H2S_da_graph) %>% layout(dragmode = 'pan')
H2S_da_graph_b <- H2S_da %>%
ggplot(aes(x=day, y=H2S_daily_avg, group=Monitor, color=Monitor)) +
geom_line() +
labs(title = "Daily Average H2S concentration by monitor w/o outlier", y = 'Daily Avearge H2S', x = 'time') +
scale_y_continuous(limits = c(0, 100)) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45))
ggplotly(H2S_dm_graph_b) %>% layout(dragmode = 'pan')
full_data %>%
polarPlot(pollutant = "H2S", col = "turbo",
key.position = "bottom",
key.header = "mean H2S",
key.footer = NULL, title = 'hi')
#https://atlas.eia.gov/datasets/6547eda91ef84cc386e23397cf834524_22/about
st_read('shapefiles/Petroleum_Refinery.shp')
## Reading layer `Petroleum_Refinery' from data source
## `D:\313\Year4Uni\Reading Course\H2S-study\shapefiles\Petroleum_Refinery.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 6 features and 22 fields
## Geometry type: POINT
## Dimension: XY
## Bounding box: xmin: -118.411 ymin: 33.77906 xmax: -118.2337 ymax: 33.91142
## Geodetic CRS: WGS 84
refineries <- read_sf('shapefiles/Petroleum_Refinery.shp', layer = 'Petroleum_Refinery')
refineries <- refineries %>%
select(Company, Site, Latitude, Longitude) %>%
mutate(refinery = case_when(Site == 'Carson' ~ 'Marathon (Carson)',
Site == 'El Segundo' ~ 'Chevron El Segundo',
Site == 'Wilmington Asphalt Plant' ~ 'Valero Refinery',
Site == 'Wilmington Refinery' ~ 'Marathon (Wilmington)',
Site == 'Torrance' ~ 'Torrance Refinery',
Site == 'Wilmington' ~ 'Phillips 66 (Wilmington)'))
monitor_loc <- daily_full %>%
select(monitor_lon, monitor_lat, Monitor) %>%
distinct()
ref_loc <- daily_full %>%
select(Refinery) %>% distinct()
# also load in dominguez channel
st_read('shapefiles/DominguezChannel_Carson.shp')
## Reading layer `DominguezChannel_Carson' from data source
## `D:\313\Year4Uni\Reading Course\H2S-study\shapefiles\DominguezChannel_Carson.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 9 features and 17 fields
## Geometry type: LINESTRING
## Dimension: XYZ
## Bounding box: xmin: -118.3382 ymin: 33.77701 xmax: -118.2275 ymax: 33.92881
## z_range: zmin: 0 zmax: 0
## Geodetic CRS: WGS 84
d_channel <- read_sf('shapefiles/DominguezChannel_Carson.shp', layer = 'DominguezChannel_Carson')
d_channel <- d_channel %>% st_zm()
basemap <- leaflet() %>%
addProviderTiles(providers$MtbMap) %>%
addProviderTiles(providers$Stadia.StamenTerrainBackground,
options = providerTileOptions(opacity = 0.9)) %>%
addProviderTiles(providers$Stadia.StamenTonerLines,
options = providerTileOptions(opacity = 0.25)) %>%
addProviderTiles(providers$Stadia.StamenTonerLabels) %>%
addCircleMarkers(data = monitor_loc,
lng=~monitor_lon, lat=~monitor_lat,
fillOpacity = 0.85, radius = 4,
fillColor = , weight = 1, stroke = T, col = '#BA55D3',
label = ~Monitor) %>%
addCircleMarkers(data = refineries,
lng=~Longitude, lat=~Latitude,
fillOpacity = 0.95, radius = 6,
fillColor = , weight = 1, stroke = T, col = '#8B0000',
label = ~refinery) %>%
addPolylines(data = d_channel, opacity = 0.8, weight = 5)
basemap
saveWidget(basemap, file="basemap.html")
# Create a polar map
# TBD: include markers for refineries
polarmap1 <- polarMap(
daily_full[complete.cases(daily_full),] %>%
filter(day >= '2022-02-01',
!(Monitor %in% c('West HS', 'Elm Ave', 'North HS'))) %>%
rename(wd = wd_avg,
ws = ws_avg),
pollutant = "H2S_daily_avg",
latitude = "monitor_lat",
longitude = "monitor_lon",
popup = "Monitor",
provider = "Stamen.Toner",
d.icon = 150,
d.fig = 2.5,
alpha = 0.95,
key = TRUE
)
##
Creating Polar Markers â– â– â– â– â– â– â– â– â– â– â– â– â– 40% | ETA: 2s
Creating Polar Markers
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 50% | ETA: 1s
Creating Polar Markers â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–
## 80% | ETA: 1s
Creating Polar Markers â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 90% | ETA: 0s
polarmap2 <- polarMap(
daily_full[complete.cases(daily_full),] %>%
filter(day >= '2022-02-01',
Monitor %in% c('West HS', 'Elm Ave', 'North HS')) %>%
rename(wd = wd_avg,
ws = ws_avg),
pollutant = "H2S_daily_avg",
latitude = "monitor_lat",
longitude = "monitor_lon",
popup = "Monitor",
provider = "Stamen.Toner",
d.icon = 150,
d.fig = 2.5,
alpha = 0.95,
key = TRUE,
statistic = 'nwr'
)
##
Creating Polar Markers â– â– â– â– â– â– â– â– â– â– â– 33% | ETA: 37s
Creating Polar Markers
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 67% | ETA: 19s
polarmap1
polarmap2
sincefeb2022_mon <- daily_full[complete.cases(daily_full),] %>%
filter(day >= '2022-02-01') %>% pull(Monitor) %>% unique()
sincefeb2022_data <- daily_full[complete.cases(daily_full),] %>%
filter(day >= '2022-02-01') %>%
rename(wd = wd_avg,
ws = ws_avg)
for (mon in sincefeb2022_mon) {
polarPlot(sincefeb2022_data %>% filter(Monitor == mon),
pollutant = "H2S_daily_avg",
type = 'Monitor',
latitude = "monitor_lat",
longitude = "monitor_lon",
k = 30)
}
polarPlot(daily_full[complete.cases(daily_full),] %>%
filter(day >= '2022-02-01',
Monitor == 'West HS') %>%
rename(wd = wd_avg,
ws = ws_avg),
pollutant = "H2S_daily_avg",
latitude = "monitor_lat",
longitude = "monitor_lon",
k = 10)
polarPlot(daily_full[complete.cases(daily_full),] %>%
filter(day >= '2022-02-01',
Monitor == 'North HS') %>%
rename(wd = wd_avg,
ws = ws_avg),
pollutant = "H2S_daily_avg",
latitude = "monitor_lat",
longitude = "monitor_lon",
k = 10)
polarPlot(daily_full[complete.cases(daily_full),] %>%
filter(day >= '2022-02-01',
Monitor == 'Elm Ave') %>%
rename(wd = wd_avg,
ws = ws_avg),
pollutant = "H2S_daily_avg",
latitude = "monitor_lat",
longitude = "monitor_lon",
k = 10)
dis_mon <- daily_full[complete.cases(daily_full),] %>%
filter(year == '2021', month %in% c('10', '11', '12')) %>% pull(Monitor) %>% unique()
dis_data <- daily_full[complete.cases(daily_full),] %>%
filter(year == '2021', month %in% c('10', '11', '12')) %>%
rename(wd = wd_avg,
ws = ws_avg)
for (mon in dis_mon) {
polarPlot(dis_data %>% filter(Monitor == mon),
pollutant = "H2S_daily_avg",
type = 'Monitor',
latitude = "monitor_lat",
longitude = "monitor_lon",
k = 30)
}
# save these plots
getplot <- function(mon) {
mon_plot <- polarPlot(dis_data %>% filter(Monitor == mon),
pollutant = "H2S_daily_avg",
latitude = "monitor_lat",
longitude = "monitor_lon",
k = 30,
key = FALSE)
return(mon_plot)
}
# for loop doesn't work with png() and bg='transparent' for some reason...
mon <- dis_mon[1]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/disaster/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
##
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:
## â–¶ `polarPlot(mydata = dis_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
##
##
## ── This contains: ──
##
##
##
## A single data frame:
## • $data [with no subset structure]
##
##
##
## A single plot:
## • $plot [with no subset structure]
dev.off()
## png
## 2
mon <- dis_mon[2]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/disaster/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = dis_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- dis_mon[3]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/disaster/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = dis_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- dis_mon[4]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/disaster/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = dis_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- dis_mon[5]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/disaster/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = dis_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- dis_mon[6]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/disaster/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = dis_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- dis_mon[7]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/disaster/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = dis_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- dis_mon[8]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/disaster/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = dis_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- dis_mon[9]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/disaster/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = dis_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- dis_mon[10]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/disaster/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = dis_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- dis_mon[11]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/disaster/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = dis_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- dis_mon[12]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/disaster/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = dis_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- dis_mon[13]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/disaster/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = dis_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- dis_mon[14]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/disaster/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = dis_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
parOrig <- par()
par(parOrig)
## Warning in par(parOrig): graphical parameter "cin" cannot be set
## Warning in par(parOrig): graphical parameter "cra" cannot be set
## Warning in par(parOrig): graphical parameter "csi" cannot be set
## Warning in par(parOrig): graphical parameter "cxy" cannot be set
## Warning in par(parOrig): graphical parameter "din" cannot be set
## Warning in par(parOrig): graphical parameter "page" cannot be set
plot(1:3)
polarmap3 <- polarMap(
daily_full[complete.cases(daily_full),] %>%
rename(wd = wd_avg,
ws = ws_avg),
pollutant = "H2S_daily_avg",
latitude = "monitor_lat",
longitude = "monitor_lon",
popup = "Monitor",
provider = "Stamen.Toner",
d.icon = 150,
d.fig = 2.5,
alpha = 0.95,
key = TRUE
)
##
Creating Polar Markers â– â– â– â– â– â– â– â– â– â– â– 33% | ETA: 2s
Creating Polar Markers
## â– â– â– â– â– â– â– â– â– â– â– â– â– 40% | ETA: 2s
Creating Polar Markers â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 47% | ETA:
## 2s
Creating Polar Markers â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 53% | ETA: 2s
Creating Polar Markers
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 60% | ETA: 2s
Creating Polar Markers â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–
## 67% | ETA: 1s
Creating Polar Markers â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 73% | ETA:
## 1s
Creating Polar Markers â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 80% | ETA: 1s
Creating Polar
## Markers â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 87% | ETA: 1s
Creating Polar Markers
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 93% | ETA: 0s
## Warning: There was 1 warning in `dplyr::mutate()`.
## ℹ In argument: `plot = purrr::map(data, fun, .progress = "Creating Polar
## Markers")`.
## Caused by warning:
## ! Not enough data to fit surface.
## Try reducing the value of the smoothing parameter, k to less than 100.
## Or use statistic = 'nwr'.
polarmap3
polarPlot(daily_full[complete.cases(daily_full),] %>%
rename(wd = wd_avg,
ws = ws_avg) %>%
filter(Monitor == '213th & Chico'),
pollutant = "H2S_daily_avg",
type = 'Monitor',
latitude = "monitor_lat",
longitude = "monitor_lon",
k = 30)
full_mon <- daily_full[complete.cases(daily_full),] %>%
pull(Monitor) %>% unique()
full_daily_data <- daily_full[complete.cases(daily_full),] %>%
rename(wd = wd_avg,
ws = ws_avg)
for (mon in full_mon) {
polarPlot(full_daily_data %>% filter(Monitor == mon),
pollutant = "H2S_daily_avg",
type = 'Monitor',
latitude = "monitor_lat",
longitude = "monitor_lon",
k = 30)
}
polarmap4 <- polarMap(
daily_full[complete.cases(daily_full),] %>%
filter(!(year == '2021' & month %in% c('10', '11', '12'))) %>%
rename(wd = wd_avg,
ws = ws_avg),
pollutant = "H2S_daily_avg",
latitude = "monitor_lat",
longitude = "monitor_lon",
popup = "Monitor",
provider = "Stamen.Toner",
d.icon = 150,
d.fig = 2.5,
alpha = 0.95,
key = TRUE
)
##
Creating Polar Markers â– â– â– â– â– â– â– â– â– â– â– 33% | ETA: 2s
Creating Polar Markers
## â– â– â– â– â– â– â– â– â– â– â– â– â– 40% | ETA: 2s
Creating Polar Markers â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 47% | ETA:
## 2s
Creating Polar Markers â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 53% | ETA: 2s
Creating Polar Markers
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 60% | ETA: 2s
Creating Polar Markers â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â–
## 67% | ETA: 1s
Creating Polar Markers â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 73% | ETA:
## 1s
Creating Polar Markers â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 80% | ETA: 1s
Creating Polar
## Markers â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 87% | ETA: 1s
Creating Polar Markers
## â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– â– 93% | ETA: 0s
## Warning: There was 1 warning in `dplyr::mutate()`.
## ℹ In argument: `plot = purrr::map(data, fun, .progress = "Creating Polar
## Markers")`.
## Caused by warning:
## ! Not enough data to fit surface.
## Try reducing the value of the smoothing parameter, k to less than 100.
## Or use statistic = 'nwr'.
polarmap4
norm_mon <- daily_full[complete.cases(daily_full),] %>%
filter(!(year == '2021' & month %in% c('10', '11', '12'))) %>%
pull(Monitor) %>% unique()
norm_data <- daily_full[complete.cases(daily_full),] %>%
filter(!(year == '2021' & month %in% c('10', '11', '12'))) %>%
rename(wd = wd_avg,
ws = ws_avg)
# 213 needs lower k due to lack of data
polar_norm_213 <- polarPlot(norm_data %>% filter(Monitor == '213th & Chico'),
pollutant = "H2S_daily_avg",
latitude = "monitor_lat",
longitude = "monitor_lon",
k = 10,
key = FALSE)
png("polarplot_components/normal/213th_&_Chico.png", width=20, height=15, units="cm", res=800, bg="transparent")
polar_norm_213
##
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:
## â–¶ `polarPlot(mydata = norm_data %>% filter(Monitor == "213th & Chico"), `, `
## pollutant = "H2S_daily_avg", k = 10, key = FALSE, latitude = "monitor_lat", `,
## and ` longitude = "monitor_lon")`
##
##
## ── This contains: ──
##
##
##
## A single data frame:
## • $data [with no subset structure]
##
##
##
## A single plot:
## • $plot [with no subset structure]
dev.off()
## png
## 2
# for the rest, use k=30
getplot <- function(mon) {
mon_plot <- polarPlot(norm_data %>% filter(Monitor == mon),
pollutant = "H2S_daily_avg",
latitude = "monitor_lat",
longitude = "monitor_lon",
#limits = c(0, 1.5),
k = 30,
key = FALSE)
return(mon_plot)
}
# for loop doesn't work with png() and bg='transparent' for some reason...
mon <- norm_mon[2]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/normal/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = norm_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- norm_mon[3]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/normal/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = norm_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- norm_mon[4]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/normal/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = norm_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- norm_mon[5]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/normal/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = norm_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- norm_mon[6]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/normal/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = norm_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- norm_mon[7]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/normal/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = norm_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- norm_mon[8]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/normal/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = norm_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- norm_mon[9]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/normal/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = norm_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- norm_mon[10]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/normal/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = norm_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- norm_mon[11]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/normal/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = norm_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- norm_mon[12]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/normal/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = norm_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- norm_mon[13]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/normal/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = norm_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- norm_mon[14]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/normal/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = norm_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
mon <- norm_mon[15]
mon_plot <- getplot(mon)
mon <- str_replace_all(str_replace_all(mon, '[()]', ''), ' ', '_')
png(paste0("polarplot_components/normal/", mon, ".png"), width=20, height=15, units="cm", res=800, bg="transparent")
mon_plot
## ── openair object ──────────────────────────────────────────────────────────────
## Created by:â–¶ `polarPlot(mydata = norm_data %>% filter(Monitor == mon), pollutant =
## "H2S_daily_avg", ` and ` k = 30, key = FALSE, latitude = "monitor_lat",
## longitude = "monitor_lon")`
## ── This contains: ──
##
## A single data frame:• $data [with no subset structure]
##
## A single plot:• $plot [with no subset structure]
dev.off()
## png
## 2
parOrig <- par()
par(parOrig)
## Warning in par(parOrig): graphical parameter "cin" cannot be set
## Warning in par(parOrig): graphical parameter "cra" cannot be set
## Warning in par(parOrig): graphical parameter "csi" cannot be set
## Warning in par(parOrig): graphical parameter "cxy" cannot be set
## Warning in par(parOrig): graphical parameter "din" cannot be set
## Warning in par(parOrig): graphical parameter "page" cannot be set
plot (1:3)
odor <- daily_full %>%
select(day, county, num_odor_complaints) %>%
distinct()
odor_graph <- odor %>%
ggplot(aes(x=day, y=num_odor_complaints, group=county, color=county)) +
geom_line() +
labs(title = "Number of odor complaints over time", y = 'Number of odor complaints', x = 'time') +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45))
ggplotly(odor_graph) %>% layout(dragmode = 'pan')
odor_graph_b <- odor %>%
ggplot(aes(x=day, y=num_odor_complaints, group=county, color=county)) +
geom_line() +
labs(title = "Number of odor complaints over time", y = 'Number of odor complaints', x = 'time') +
scale_y_continuous(limits = c(0, 30)) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45))
ggplotly(odor_graph_b) %>% layout(dragmode = 'pan')